Cloud computing may be referred to as a service that provides various information technology (IT) resources distributed over an Internet. The most common cloud computing service models may include Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). The IaaS may provide hardware infrastructure as a service. The PaaS may provide application development and execution platform as a service. The SaaS may provide applications as a service.
The IaaS may further include many sub_service categories. Mainly, the IaaS may include a storage service and a computing service, which provide computing resources in a form of a virtual machine. Such a storage service may be provided by a distributed storage system. The distributed storage system may virtually create a storage pool using low-profiled hardware distributed over a network. Such a distributed storage system may dynamically and flexibly provide a shared storage space to users according to abruptly varying service demands. The distributed storage system may commonly employ an object-based storage scheme. The object-based storage scheme may be a typical cloud storage service scheme. The object-based storage scheme may allow each physical storage device to manage own storage spaces. The object-based storage scheme may improve overall performance of the distributed storage system and allow the distributed storage system to easily expand a storage capability. Furthermore, data may be safely shared independently from related platforms.
In case of a typical distributed storage system, the large number of clients may refer to the same proxy server to access a plurality of data nodes. Accordingly, a processing load of the proxy server significantly increases as the number of the clients and the data nodes increase. Particularly, the proxy server may receive requests from clients and deliver the requests to data nodes. The proxy server may receive results of requested operations from the data nodes in response to the requests and deliver the results of the requested operation to the clients. As described above, the proxy server may have a great processing load for processing the requests from a plurality of clients and delivering the results of the requested operations to the clients. Accordingly, a distributed storage service may be delayed due to the high processing load of the proxy server.
Furthermore, when a single proxy server malfunctions due to errors, an entire distributed storage system may fail. That is, the typical distributed storage system may have one point of failure problem. In addition, the typical distributed storage system cannot be expanded more than a processing capacity of a single proxy server. Therefore, there is a need for developing a distributed storage system including multiple proxy servers in order to overcome the above described problems.